home *** CD-ROM | disk | FTP | other *** search
/ Apple II Magazines (PO) / Nibble Volume 10, No. 03 (1989-03)(MicroSPARC)(Side A)[a].zip / Nibble Volume 10, No. 03 (1989-03)(MicroSPARC)(Side A)[a].po / GS.LOADER.S < prev    next >
Text File  |  1996-12-24  |  4KB  |  168 lines

  1.  
  2.  
  3. *******************************
  4. * GRAPHICS.SWITCH SOURCE CODE *
  5. * BY TOM DORRIS               *
  6. * COPYRIGHT (C) 1989          *
  7. * MICROSPARC, INC.            *
  8. * CONCORD, MA 01742           *
  9. *******************************
  10.  
  11. * MERLIN ASSEMBLER
  12.  
  13.           ORG $6500
  14.  
  15. ERRBYT    EQU $6
  16. YCOOR     EQU $7
  17. FPOSL     EQU $8
  18. FPOSH     EQU $9
  19. POS       EQU $26
  20. MASK      EQU $FA
  21. OFFSET    EQU $FB
  22. XOFF      EQU $FC
  23. TEMP      EQU $FD
  24.  
  25. * OTHER LOCATIONS
  26.  
  27. PLIST     EQU $6055
  28. CLRLST    EQU $6060
  29. MLI       EQU $BF00
  30. HGR2      EQU $F3D8
  31. HPOSN     EQU $F411
  32. HCOLOR    EQU $F6F0
  33.  
  34. ********************************
  35.  
  36.           JSR HGR2 Clear and display page 2
  37.           LDA #1
  38.           STA MASK
  39.           LDA #0
  40.           STA YCOOR
  41.           STA OFFSET
  42.           JSR HPOSN Prepare POS for first line
  43.  
  44. * Set up for OPEN command
  45.  
  46.           LDA #3 Parameter count
  47.           STA PLIST
  48.           LDA #0
  49.           STA PLIST+1
  50.           STA PLIST+3
  51.           LDA #$60
  52.           STA PLIST+2 Pathname location
  53.           LDA #$61
  54.           STA PLIST+4 IO buffer (1K)
  55.           LDA #1
  56.           STA PLIST+5 Reference number
  57.           JSR MLI Execute command
  58.           HEX C8 Call number for OPEN
  59.           HEX 5560 PLIST location
  60.           BEQ OK
  61.           STA ERRBYT
  62.           RTS
  63.  
  64. OK        LDX #7
  65.           JSR HCOLOR
  66.  
  67. * Set up for READ command
  68.  
  69.           LDA #4 Parameter count
  70.           STA PLIST
  71.           LDA #1
  72.           STA PLIST+1 Reference number
  73.           LDA #0
  74.           STA PLIST+2
  75.           STA PLIST+4 Request count LO
  76.           STA PLIST+6 Transfer count
  77.           STA PLIST+7
  78.           LDA #$20
  79.           STA PLIST+5 Request count HI
  80.           LDA #$70
  81.           STA PLIST+3 Data buffer
  82.  
  83.           JSR READ Read first 8,192 bytes
  84.           LDA XOFF Get amount to offset pic
  85.           BEQ NXT If none, go on
  86. OK5       JSR GETBYTE
  87.           DEC XOFF DEC twice for two pixel
  88.           DEC XOFF SUPER HIRES byte
  89.           BNE OK5
  90. NXT       JSR GETBYTE Get next byte
  91.           STA TEMP
  92.           AND #$F0 Get first pixel color
  93.           CLC
  94.           ROR
  95.           ROR
  96.           ROR
  97.           ROR
  98.           JSR PLOT Plot color
  99.           BCS DNE
  100.           LDA TEMP
  101.           AND #$0F Mask second color
  102.           JSR PLOT
  103.           BCC NXT
  104. DNE       LDA #1 Parameter for CLOSE
  105.           STA PLIST
  106.           STA PLIST+1
  107.           JSR MLI
  108.           HEX CC Call number for CLOSE
  109.           HEX 5560 PLIST location
  110.           LDA #0
  111.           STA ERRBYT
  112.           RTS
  113. PLOT      TAX
  114.           LDA CLRLST,X Determine if color is on
  115.           BEQ RTN No, move on
  116.           LDY OFFSET Get screen-byte offset
  117.           LDA (POS),Y Get screen byte
  118.           ORA MASK Plot point
  119.           STA (POS),Y Replace byte
  120. RTN       ASL MASK Move mask to next pixel
  121.           BPL KO Byte overflow?
  122.           LDA #1
  123.           STA MASK
  124.           INC OFFSET Yes, move to next byte
  125. KO        LDA OFFSET
  126.           CMP #40
  127.           BNE NTD
  128.           LDA #20
  129.           STA ERRBYT
  130. GTMR      JSR GETBYTE Get bytes from file to
  131.           DEC ERRBYT move to next line
  132.           BNE GTMR
  133.           LDA #0
  134.           STA ERRBYT
  135.           STA OFFSET
  136.           LDA #1
  137.           STA MASK
  138.           INC YCOOR
  139.           LDA YCOOR
  140.           JSR HPOSN Find next line
  141.           LDA YCOOR
  142.           CMP #192 Last line?
  143.           BNE NTD No, clear error flag
  144.           SEC
  145.           RTS
  146. NTD       CLC
  147.           RTS
  148. READ      JSR MLI Perform READ command
  149.           HEX CA Call number for READ
  150.           HEX 5560 PLIST location
  151.           LDA #0
  152.           STA FPOSL
  153.           LDA #$70
  154.           STA FPOSH
  155.           RTS
  156. GETBYTE   LDA FPOSL
  157.           BNE RD
  158.           LDA FPOSH
  159.           CMP #$90
  160.           BNE RD
  161.           JSR READ
  162. RD        LDY #0
  163.           LDA (FPOSL),Y
  164.           INC FPOSL
  165.           BNE DR
  166.           INC FPOSH
  167. DR        RTS
  168.